package ui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dialog.ModalExclusionType;
import java.awt.Font;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.TrayIcon.MessageType;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import ui.ScreenPanelManager.ID;
import ui.creatorsscreen.CreatorsScreenPanel;
import ui.creatorsscreen.listeners.CreatorsPanelKeyListener;
import ui.creatorsscreen.listeners.CreatorsPanelMouseListener;
import ui.mainscreen.MainScreenPanel;
import ui.mainscreen.listeners.CreatorsButtonListener;
import ui.mainscreen.listeners.LoadButtonListener;
import ui.mainscreen.listeners.LoadPanelListener;
import ui.mainscreen.listeners.NewGameButtonListener;
import ui.mainscreen.listeners.OptionButtonListener;
import ui.mainscreen.listeners.OptionPanelListener;
import ui.newgamescreen.NewGameScreenPanel;

/**
 * Реализация главного окна игры
 * 
 * @author Anton Nesterov
 */
public class MainWindow extends JFrame {

	private static final long serialVersionUID = 1L;

	private static MainWindow instance;

	public MainWindow() {
		super("Фронтир: У последней черты");
		setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
		setResizable(false);
		setLocationRelativeTo(null);
		if (!isDisplayable()) {
			setUndecorated(true);
		}
		setModalExclusionType(ModalExclusionType.TOOLKIT_EXCLUDE);
		GraphicsDevice gd = GraphicsEnvironment.getLocalGraphicsEnvironment()
			.getDefaultScreenDevice();
		gd.setFullScreenWindow(this);

		/* Устанавливаем расположение компонентов в окне */
		ScreenPanelManager manager = ScreenPanelManager.getInstance();
		manager.setFrame(this);
		manager.activateScreenByID(ID.MSP);

		/*
		 * Добавлен слушатель для события - попытка закрытия окна по системному
		 * крестику
		 */

		addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				/* потверждение выхода */
				Object[] options = {"Да", "Нет"};
				int res = JOptionPane.showOptionDialog(null, "Вы действительно хотите выйти?",
					"Выход из игры", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null,
					options, options[0]);

				if (res == JOptionPane.YES_OPTION)
					System.exit(0);
			}
		});

	}

}
